import request from '@/utils/request'
import basePath from '../apiConifg'
const qs = require('qs')

// 组织结构 相关 api
/**
 * 获取组织结构列表-(不支持分页参数)
 * @param params
 */
export function list(params) {
  return request({
    url: basePath + '/sys/sys-department/list?' + qs.stringify(params, { indices: false }),
    method: 'get'
  })
}
/**
 * 获取组织结构列表-(支持分页参数)
 * @param params
 */
export function page(params) {
  return request({
    url: basePath + '/sys/sys-department?' + qs.stringify(params, { indices: false }),
    method: 'get'
  })
}

/**
 * 获取组织结构-id-详情
 * @param params
 */
export function info(id) {
  return request({
    url: basePath + '/sys/sys-department/' + id,
    method: 'get'
  })
}

/**
 * 组织结构-新增
 * @param params
 */
export function add(data) {
  return request({
    url: basePath + '/sys/sys-department',
    method: 'post',
    data
  })
}
/**
 * 组织结构-删除
 * @param params
 */
export function del(ids) {
  return request({
    url: basePath + '/sys/sys-department',
    method: 'delete',
    data: ids
  })
}
/**
 * 组织结构-修改
 * @param params
 */
export function edit(data) {
  return request({
    url: basePath + '/sys/sys-department',
    method: 'put',
    data
  })
}

/**
 * 获取组织结构数
 * @param params
 */
export function tree(params) {
  return request({
    url: basePath + '/sys/sys-user-dep/tree?' + qs.stringify(params, { indices: false }),
    method: 'get'
  })
}
/* 开放性接口 */

/**
 * 获取组织结构数
 * @param params
 */
export function openTree(params) {
  return request({
    url: basePath + '/open/sys/sys-department/tree?' + qs.stringify(params, { indices: false }),
    method: 'get'
  })
}

/**
 * 根据指定id 获取下级的所有的id
 * @param id
 */
export function getSubIds(id) {
  return request({
    url: basePath + '/open/sys/sys-department/getSubIds/' + id,
    method: 'get'
  })
}

/**
 * 判断指定的parentId上级id是否可用
 * @param id
 */
export function parentIdIsEnable(id, parentId) {
  return request({
    url: basePath + '/open/sys/sys-department/parentIdIsEnable/' + id + '/' + parentId,
    method: 'get'
  })
}

export default { add, edit, del, info }
